#ifndef __CLIENT_H__
#define __CLIENT_H__

#include <iostream>
#include <string>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

using namespace std;

class TCPClient
{
private:
    string server_ip; // 服务器IP
    int port;         // 服务器端口
    int client_fd;    // 客户端套接字
public:
    // 构造函数，初始化服务器 IP 和端口
    TCPClient(const string &ip, int port);

    // 析构函数，关闭客户端连接以释放资源
    ~TCPClient();

    // 连接服务器
    bool connectToServer();

    // 断开连接
    void disconnect();

    // 接收服务器发送的数据
    bool receiveData(string &data);

    // 向服务器发送数据
    bool sendData(const string &data);

    // 重载 << 操作符，向服务器发送数据
    TCPClient &operator<<(const string &data);

    // 重载 >> 操作符，从服务器接收数据
    TCPClient &operator>>(string &data);

    // 关闭客户端连接
    void closeclient();
};

#endif